package com.dao;

import java.util.List;
import java.util.Set;

import com.hbt.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import com.bean.Cliente;
import com.bean.Cotizacion;


public class CotizacionDAO {
	
	private static CotizacionDAO instancia = null;
	private static SessionFactory sf = null;

	public static CotizacionDAO getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new CotizacionDAO();
		} 
		return instancia;
	}
	
	public void grabarCotizacion (Cotizacion cotizacion){
		Session session = sf.openSession();
		session.beginTransaction();
		session.persist(cotizacion);
		session.flush();		
		session.getTransaction().commit();	
		session.close();
	}
	
	public void grabarCotizaciones (Set <Cotizacion> cotizaciones){
		Session session = sf.openSession();
		session.beginTransaction();
		for (Cotizacion c: cotizaciones){
			session.persist(c);
		}
		session.flush();
		session.getTransaction().commit();
		session.close();
	}
	
	public Cotizacion getCotizacion(Cotizacion cot) {
		Session session = sf.openSession();
		Transaction trans = session.beginTransaction();
		Cotizacion cotizacion = (Cotizacion) session.get(Cotizacion.class, cot.getId());
		trans.commit();
		session.close();
		return cotizacion;
	}
	
	public List<Cotizacion> getCotizaciones(){
		Session session = sf.openSession();
		List<Cotizacion> result = (List<Cotizacion>) session.createQuery("from Cotizacion").list();
		session.close();
		return result;	
	}
}
